<?php $this->load->view('home/header');?>
<!-- Begin Wrapper -->
<div class="wrapper"><!-- Begin Intro -->
<div class="intro">因为生活开始,因为热爱继续. </div>
<ul class="social">
<li><a class="rss" href="#"></a></li><li><a class="facebook" href="#"></a></li><li><a class="twitter" href="#"></a></li><li><a class="pinterest" href="#"></a></li><li><a class="dribbble" href="#"></a></li><li><a class="flickr" href="#"></a></li><li><a class="linkedin" href="#"></a></li></ul><!-- End Intro --> 

<!-- Begin Blog Grid -->
<div class="blog-wrap">
	<!-- Begin Blog -->
	<div class="blog-grid">
		<!-- Begin Image Format -->
		<div class="post format-image box"> 
			<div class="frame">
				<a href="post.html">
					<img src="style/images/art/post1.jpg" alt="" />
				</a>
			</div>
			<h2 class="title"><a href="post.html">Morning Glory</a></h2>
			<p>A wonderful serenity has taken possession of my entire soul, like these sweet mornings of autumn which I enjoy with my whole heart.</p>
			<div class="details">
				<span class="icon-image"><a href="#">September 26, 2012</a></span>
				<span class="likes"><a href="#" class="likeThis">44</a></span>
				<span class="comments"><a href="#">3</a></span>
			</div>
		</div>
		<!-- End Image Format -->

 	
		<!-- Begin Quote Format -->
		<div class="post format-quote box"> 
			<blockquote>Scissors cuts paper, paper covers rock, rock crushes lizard, lizard poisons Spock, Spock smashes scissors, scissors decapitates lizard, lizard eats paper, paper disproves Spock, Spock vaporizes rock, and as it always has, rock crushes scissors.<cite>Sheldon Cooper</cite></blockquote>	
			<div class="details">
				<span class="icon-quote"><a href="#">September 21, 2012</a></span>
				<span class="likes"><a href="#" class="likeThis">27</a></span>
				<span class="comments"><a href="#">4</a></span>
			</div>
	
		</div>
		<!-- End Quote Format -->


		<!-- Begin Video Format -->
		<div class="post format-video box"> 
			<div class="video frame"><iframe src="" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></div>
			<h2 class="title"><a href="post.html">基于nonce的方案</a></h2>
            <p> nonce的意思是仅一次有效的随机字符串，要求每次请求时，该参数要保证不同，所以该参数一般与时间戳有关，我们这里为了方便起见，直接使用时间戳的16进制，实际使用时可以加上客户端的ip地址，mac地址等信息做个哈希之后，作为nonce参数。</p>
            <p> 我们将每次请求的nonce参数存储到一个“集合”中，可以json格式存储到数据库或缓存中。</p>
            <p> 每次处理HTTP请求时，首先判断该请求的nonce参数是否在该“集合”中，如果存在则认为是非法请求。</p>

            <p> nonce参数在首次请求时，已经被存储到了服务器上的“集合”中，再次发送请求会被识别并拒绝。</p>
            <p> nonce参数作为数字签名的一部分，是无法篡改的，因为黑客不清楚token，所以不能生成新的sign。</p>

            <p> 这种方式也有很大的问题，那就是存储nonce参数的“集合”会越来越大，验证nonce是否存在“集合”中的耗时会越来越长。我们不能让nonce“集合”无限大，所以需要定期清理该“集合”，但是一旦该“集合”被清理，我们就无法验证被清理了的nonce参数了。也就是说，假设该“集合”平均1天清理一次的话，我们抓取到的该url，虽然当时无法进行重放攻击，但是我们还是可以每隔一天进行一次重放攻击的。而且存储24小时内，所有请求的“nonce”参数，也是一笔不小的开销。</p>
		
			<div class="details">
				<span class="icon-video"><a href="#">2018-12-14</a></span>
				<span class="likes"><a href="#" class="likeThis">18</a></span>
				<span class="comments"><a href="#">1</a></span>
			</div>
			
		</div>
		<!-- End Video Format --> 					


		<!-- Begin Audio Format -->
		<div class="post format-audio box"> 
			<div class="audio-wrapper">
				<div class="vinyl">
					<dl>
						<dt class="art"> 
							<img class="highlight" src="style/images/vinyl.png" />
							<img src="style/images/art/artwork.png" alt="" />
						</dt>
						<dd class="song"><div class="icon-song"></div> Om Du Möter Varg</dd>
						<dd class="artist"><div class="icon-artist"></div> Detektivbyrån</dd>
						<dd class="album"><div class="icon-album"></div> Wermland</dd>
					</dl>
				</div>
				<div class="clear"></div>
				<div class="audio">
					<audio controls="" preload="none" src="http://win.web.rg01.sycdn.kuwo.cn/937b69f6a66c13847356703a883505c0/5c080ccf/resource/n3/8/49/3687957102.mp3"></audio>
				</div>
			</div>
			<p><strong>Detektivbyrån</strong> (&#8220;The Detective Agency&#8221;) was a Swedish electronica and folk music trio from Gothenburg. The group consisted of Anders &#8220;Flanders&#8221; Molin (accordion</a>, music box</a>), Martin &#8220;MacGyver&#8221; Molin (glockenspiel</a>, traktofon, toy piano</a>, Theremin</a>) and Jon Nils Emanuel Ekström drums</a>, sound box</a>, small bells</a>.</p>

			<div class="details">
				<span class="icon-audio"><a href="#">September 7, 2012</a></span>
				<span class="likes"><a href="#" class="likeThis">20</a></span>
				<span class="comments"><a href="#">1</a></span>
			</div>
	
		</div>
		<!-- End Audio Format -->


 		<!-- Begin Standard Format -->
 		<div class="post format-standard box">
			<h2 class="title"><a href="post.html">HTTPS的加密过程</a></h2>
            <p>如果整个网站都是走HTTPS的，那服务器返回的内容都是被加密的，你能看到网页内容是因为浏览器已经解密了。大概过程，（实际过程更复杂）：</p>
            <p>1. 你访问HTTPS网站，网站把公钥给你。</p>
            <p>2. 你验证公钥，然后生成一个串随机AES_128密码（假如是用AES加密），并把这个密码用刚才那个公钥加密，发给服务端。</p>
            <p>3. 服务端用私钥解密你的发送的数据，得到你随机生成的AES_128密码，并把网页内容全部用AES_128加密器起来，发会给你。</p>
            <p>4. 浏览器用刚刚的AES_128密码解密 服务器返回的数据，得到你可读的内容。</p>
            <p>5. 之后你发出的请求数据，也是用AES_128密码来加密。浏览器返回的网站内容都是用对称加密（比如AES128）加密起来的，而这个密码又是你临时生成了，所以第三方无法知道你访问的内容是什么。</p>
	
			<div class="details">
				<span class="icon-standard"><a href="#">2018-12-14</a></span>
				<span class="likes"><a href="#" class="likeThis">11</a></span>
				<span class="comments"><a href="#">0</a></span>
			</div>
	
		</div>
		<!-- End Standard Format -->


		<!-- Begin Link Format -->
		<div class="post format-link box"> 

			<h2 class="title">防止重放攻击<span class="arrow">&rarr;基于timestamp的方案</span></a></h2>
            <p>每次HTTP请求，都需要加上timestamp参数，然后把timestamp和其他参数一起进行数字签名。因为一次正常的HTTP请求，从发出到达服务器一般都不会超过60s，所以服务器收到HTTP请求之后，首先判断时间戳参数与当前时间相比较，是否超过了60s，如果超过了则认为是非法的请求。</p>

            <p>一般情况下，黑客从抓包重放请求耗时远远超过了60s，所以此时请求中的timestamp参数已经失效了。</p>
            <p>如果黑客修改timestamp参数为当前的时间戳，则signature参数对应的数字签名就会失效，因为黑客不知道签名秘钥，没有办法生成新的数字签名。</p>

            <p>但这种方式的漏洞也是显而易见的，如果在60s之后进行重放攻击，那就没办法了，所以这种方式不能保证请求仅一次有效。</p>
	
			<div class="details">
				<span class="icon-link"><a href="#">2018-12-14</a></span>
				<span class="likes"><a href="#" class="likeThis">10</a></span>
				<span class="comments"><a href="#">0</a></span>
			</div>
		
		</div>
		<!-- End Link Format -->


		<!-- Begin Chat Format -->
		<div class="post format-chat box"> 
			<h2 class="title"><a href="post.html">基于nonce的方案</a></h2>
			<ul>

				<li><strong>Barney:</strong> Stop pining over Marshall and Lily! Have some self respect. Now put this fiver in your mouth so that stripper with the lazy eye can vacuum it up with&#8230;</li>
				<li><strong>Ted:</strong> Barney! I&#8217;m allowed to miss them alright? They&#8217;re my two best friends.</li>
				<li><strong>Barney:</strong> I&#8217;m your two best friends!</li>
			</ul>
		
			<div class="details">
				<span class="icon-chat"><a href="#">June 13, 2012</a></span>
				<span class="likes"><a href="#" class="likeThis">5</a></span>
				<span class="comments"><a href="#">0</a></span>
			</div>
			
		</div>
		<!-- End Chat Format -->
 	
 	</div>
	<!-- End Blog -->
</div>
<!-- End Blog Grid -->

<!-- Begin Page-navi -->
    <div id="navigation">
      <div class="nav-previous"><a href="#" ><span class="meta-nav-prev">&larr; Older posts</span></a></div>
      <!--
			<div class="nav-next"><a href="#" ><span class="meta-nav-next">Newer posts &rarr;</span></a></div>
			 -->
    </div>
    <!-- End Page-navi -->

</div>
<!-- End Wrapper -->
<?php $this->load->view('home/footer');?>
